﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class materia_form : System.Web.UI.Page
{
    string cadenaError = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if ((Academia.Entidades.Usuario.RolUsuario)Session["rol"] !=
                    Academia.Entidades.Usuario.RolUsuario.Administrador)
            {
                Page.Response.Redirect("MenuAlumno.aspx");
            }
        }

        catch
        {
            Page.Response.Redirect("Login.aspx");
        }

        if (!Page.IsPostBack)
        {

            ddlElectiva.Items.Insert(0, new ListItem("Si", "1"));
            ddlElectiva.Items.Insert(1, new ListItem("No", "0"));

            ddlNivel.Items.Insert(0, new ListItem("1", "1"));
            ddlNivel.Items.Insert(1, new ListItem("2", "2"));
            ddlNivel.Items.Insert(2, new ListItem("3", "3"));
            ddlNivel.Items.Insert(3, new ListItem("4", "4"));
            ddlNivel.Items.Insert(4, new ListItem("5", "5"));

            ddlRegCursado.DataSource = Enum.GetValues(typeof(Academia.Entidades.Materia.RegimenCursadoAlumno));
            ddlRegCursado.DataBind();

            if (Request.QueryString["idMateria"] == null)
            {
                this.tipoOp.Value = "alta";
                this.lblTitulo.Text = "Agregar Materia";
                this.btnGuardar.Text = "Agregar";
            }

            else
            {
                Academia.Entidades.Materia materia = new Academia.Negocio.Materias().RecuperarUno(int.Parse(Request.QueryString["idMateria"]))[0];
                this.txtNomMateria.Text = materia.NomMateria.ToString();
                this.txtHorasSemanales.Text = materia.HorasSemanales.ToString();
                this.txtHorasTotales.Text = materia.HorasTotales.ToString();
                this.ddlElectiva.SelectedValue = materia.Electiva ? "1" : "0";
                this.ddlRegCursado.SelectedValue = materia.RegimenCursado.ToString();
                this.ddlNivel.SelectedValue = materia.Nivel.ToString();
                this.ddlEspecialidad.SelectedValue = materia.plan.IdPlan.ToString();
                this.tipoOp.Value = "modificacion";
                this.lblTitulo.Text = "Modificar Materia";
                this.btnGuardar.Text = "Modificar";
            }
        }

    }

    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        if (materiaValida())
        {
            Academia.Entidades.Materia oMateria = new Academia.Entidades.Materia();
            oMateria.NomMateria = this.txtNomMateria.Text;
            oMateria.HorasSemanales = int.Parse(txtHorasSemanales.Text);
            oMateria.HorasTotales = int.Parse(txtHorasTotales.Text);
            oMateria.Electiva = this.ddlElectiva.SelectedValue.Equals("1") ? true : false;
            oMateria.Nivel = int.Parse(this.ddlNivel.SelectedValue);
            oMateria.RegimenCursado = (Academia.Entidades.Materia.RegimenCursadoAlumno)Enum.Parse(
                              typeof(Academia.Entidades.Materia.RegimenCursadoAlumno), this.ddlRegCursado.SelectedValue, true);

            oMateria.plan = new Academia.Negocio.Planes().RecuperarUno(int.Parse(this.ddlEspecialidad.SelectedValue))[0];

            if (this.tipoOp.Value == "alta")
            {
                new Academia.Negocio.Materias().Agregar(oMateria);
                Page.Response.Redirect("abm_materias.aspx?exito=1&op=alta");
            }
            else
            {
                int idMateria = int.Parse(Request.QueryString["idMateria"]);
                oMateria.IdMateria = idMateria;
                new Academia.Negocio.Materias().Modificar(oMateria);
                Page.Response.Redirect("abm_materias.aspx?exito=1&op=modif");
            }

        }
        else
        {
            HtmlGenericControl body = this.Master.FindControl("bodytag") as HtmlGenericControl;
            body.Attributes.Add("onLoad", "alert('" + this.cadenaError + "');");
        }

    }

    private bool materiaValida()
    {
        bool valido = true;

        if (!Academia.Utilidades.Validaciones.validarNumero(this.txtHorasSemanales.Text))
        {
            valido = false;
            this.txtHorasSemanales.BackColor = System.Drawing.Color.Red;
            cadenaError = cadenaError + "Las horas semanales ingresadas no son numéricas" + "\\n";
        }

        else
        {
            this.txtHorasSemanales.BackColor = System.Drawing.Color.White;
        }

        if (!Academia.Utilidades.Validaciones.validarNumero(this.txtHorasTotales.Text))
        {
            valido = false;
            this.txtHorasTotales.BackColor = System.Drawing.Color.Red;
            cadenaError = cadenaError + "Las horas totales ingresadas no son numéricas" + "\\n";
        }

        else
        {
            this.txtHorasTotales.BackColor = System.Drawing.Color.White;
        }

        return valido;
    }

        
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Page.Response.Redirect("abm_materias.aspx");
    }
}
